package 斗地主;

import java.util.ArrayList;
import java.util.Collections;

public class PokerGame {
    //    牌盒
   static ArrayList<String> list = new ArrayList<>();
    //    准备牌，写在这里代表只有一副牌
//    定义花色和牌
//    静态代码块：随着类的加载而加载，而且只有一次
    static {
        String[] color = {"♥", "♠", "♦", "♣"};
        String[] number = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};

        for (String s : color) {
//            s代表color中的每一个花色,获得花色并和数字配对
            for (String string : number) {
//                String代表number中的每一个数字
                list.add(s+string);
            }
        }
//        循环结束后再添加大小王
        list.add("大王");
        list.add("小王");
    }

public PokerGame(){
//  准备牌 在这里代表每开一局就准备一副牌
//    System.out.println(list);测试牌是否正确
//    洗牌（打乱顺序）
    Collections.shuffle(list);


//    发牌
//    首先斗地主需要三个玩家，和底牌，即需要四个集合
    ArrayList<String> lord=new ArrayList<>();
    ArrayList<String> play1=new ArrayList<>();
    ArrayList<String> play2=new ArrayList<>();
    ArrayList<String> play3=new ArrayList<>();

//    获取集合中的每一个元素
    for (int i = 0; i < list.size(); i++) {
//        获得list(牌盒)集合的每一张牌
        String Poker = list.get(i);
        if (i<=2){
//          获得底牌
            lord.add(Poker);
            continue;
        }

//        给三个玩家发牌
        if (i%3==0){
//            给第一个玩家发牌
            play1.add(Poker);
        } else if (i%3==1) {
//            给第二个玩家发牌
            play2.add(Poker);
        }else {
//            给第三个玩家发牌
            play3.add(Poker);
        }
    }



//    看牌,即遍历每个集合（写成方法,调用方法使用的是 void）
    lookpoker("底牌",lord);
    lookpoker("玩家一",play1);
    lookpoker("玩家二",play2);
    lookpoker("玩家三",play3);
}

/*
参数一：玩家的姓名
参数二：每位玩家的牌

 */
public void lookpoker(String name,ArrayList<String>list){
    System.out.print(name+" ");

    for (String poker : list) {
        System.out.print(poker+" ");
    }
    System.out.println();
}
}
